//该文件负责进行网络请求
import axios from "axios";
const loginUser = JSON.parse(localStorage.getItem('loginUser'));


//定于函数完成网络请求
/*
* async用来修饰函数，代表该函数是一个异步执行的操作
* await用来修饰函数调用的过程，但是注意被修饰的函数返回值必须是Promise对象,此时被await修饰的函数调用必须等到返回结果以后后面的程序才会继续执行。从而实现异步任务具备同步执行的顺序。
* */
//  async function startNetwork(params){
//    console.log("++++++++++++++++++++++++++++++")
//    console.log(loginUser)
//     try {
//        let result = await axios({
//             method:"GET",
//             headers:{
//               "Content-type": "application/x-www-form-urlencoded",
//                 "token":loginUser.token
//             },
//             ...params
//         });
//         return result;
//     }catch (e){
//         console.log("+++++++++++++++")
//         console.log("获取数据失败")
//         return null;
//     }
// }

async function startNetwork(params) {
  console.log("++++++++++++++++++++++++++++++");
  console.log(loginUser);
  try {
    // 合并传入的参数和默认的请求方法
    const finalParams = {
      method: "GET",
      ...params
    };

    // 确保 headers 存在
    finalParams.headers = finalParams.headers || {};

    // 添加默认的 Content-type 和 token
    finalParams.headers["token"] = loginUser.token;

    let result = await axios(finalParams);
    return result;
  } catch (e) {
    console.log("+++++++++++++++");
    console.log("获取数据失败");
    return null;
  }
}

// 函数调用示例:
// GET请求
// let res = await startNetwork({
//     // 这里直接把参数拼接到url上也是可以的, 因为是get请求
//     url: "/api/pinpai",
//     // post请求的参数对象用data
//     // get请求的参数对象用params
//     params:{
//         page:form.page,
//         pageSize:form.pageSize,
//         token:sessionStorage.getItem("token"),
//         test:"zhe shi ce shi can shu"
//     }
// });

// POST请求
// let res = await startNetwork({
//     url:"/api/user",
//     method:"post",
//     data:{
//         account: form.account,
//         password: form.password,
//         login: 1
//     }
// });


//将函数startnetwork导出
export default startNetwork;
